perm filename DISTOR.HDR[VIS,HPM]2 blob sn#361021 filedate 1978-06-09 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	REQUIRE "DISTOR[VIS,HPM]" LOAD_MODULE
C00021 ENDMK
C⊗;
REQUIRE "DISTOR[VIS,HPM]" LOAD_MODULE;

EXTERNAL PROCEDURE PQINIT (INTEGER P,Q);

COMMENT  DISCAL uses the reference positions X and Y and the distorted
	 positions XP and YP of N image points to compute the distortion
	 calibration polynomial coefficients G (for converting X,Y to XP,YP)
	 and their covariance matrix S.  (To allow P and Q to have their
	 maximum values, G should be dimensioned [1:44] and S should be
	 dimensioned [1:44,1:44].)  P is the degree of the two-dimensional
	 polynomials for general distortion, and Q is the degree of the
	 one-dimensional polynomial for radial distortion.  (An even value
	 of Q is equivalent to the next lower odd value.  All values of Q
	 such that Q≤P are equivalent.)
	 SD is the computed standard deviation of the observation errors (unmodeled
	 errors in X and Y).  If on input 0≤P≤5 and Q≤10, these values are
	 accepted.  Otherwise, typed-in values P and Q are asked for, with
	 the entire process repeating until only a carriage return is
	 typed for P.  The final values are returned.;
EXTERNAL PROCEDURE DISCAL (INTEGER N; REFERENCE INTEGER P,Q;
                           REAL ARRAY X,Y,XP,YP,G,S; REFERENCE REAL SD);

COMMENT  DISREM uses the distortion calibration coefficients G as computed by
	 DISCAL according to the general and radial polynomial orders P and Q
	 to convert the N points XI,YI into the N points XO,YO.  (XO and YO
	 can refer to the same arrays as XI and YI.)  If TOL<0, the forward
	 conversion is done (X,Y to XP,YP in DISCAL).  If TOL≥0, the inverse
	 conversion is done (XP,YP to X,Y in DISCAL), and TOL is the convergence
	 tolerance (in XO,YO) for terminating the iterations (with a maximum
	 of 10 iterations).  (PQINIT must be called before this procedure to
	 compute the functions of P and Q, unless this has already been
	 done by calling DISCAL);
EXTERNAL SIMPLE PROCEDURE DISREM (INTEGER N; REAL TOL;
	REAL ARRAY G,XI,YI,XO,YO);